package vue;

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

import controleur.Authentification;
import controleur.EnregistrerCommande;
import controleur.EnregistrerLivraison;

public class Fenetre_Principale extends JFrame {
	
	private controleur.Authentification authentification;
	private JPanel panneauOuvert;
	private int hauteurMenu = 40;
	
	/**
	 * Constructeur
	 * @param authentification - Authentification
	 */
	public Fenetre_Principale(Authentification authentification) {
		this.setSize(new Dimension(600, 300));
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
	//	this.setResizable(false);
		
		panneauOuvert = new JPanel();
		
		// Création du controleur pour l'authentification du client
		this.authentification = authentification;
		
		// Création du menu
		JMenuBar barreMenu = new JMenuBar();
		JMenu menu = new JMenu("Menu");
		menu.setSize(new Dimension(this.getSize().width, hauteurMenu));
		barreMenu.add(menu);
		
		JMenuItem menuClient = new JMenuItem("Nouvelle commande");
		menuClient.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				ouvrirNouveauPanneauClient();
			}
		});
		JMenuItem livreur = new JMenuItem("Nouvelle livraison");
		livreur.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				ouvrirNouveauPanneauLivreur();
			}
		});
		menu.add(menuClient);
		menu.add(livreur);
		this.setJMenuBar(barreMenu);
		// Fin de la création du menu
	}
	
	/**
	 * Ajoute le panneau du client dans la fenêtre principale
	 */
	public void ouvrirNouveauPanneauClient() {
		this.setSize(new Dimension(600, 300));
		this.remove(panneauOuvert);
		String adesseClient = authentification.authentificationClient();
		if (adesseClient != null) {
			this.add(panneauOuvert = EnregistrerCommande.demarrerCommande(adesseClient));
		}
		this.validate();
	}
	
	/**
	 * Ajoute le panneau du livreur dans la fenêtre principale
	 */
	public void ouvrirNouveauPanneauLivreur() {
		this.setSize(new Dimension(700, 430));
		this.remove(panneauOuvert);
		if (authentification.authentificationLivreur()) {
			this.add(panneauOuvert = EnregistrerLivraison.demarrerLivraison());
		}
		this.validate();
	}
}
